package com.tl.mybatis02.mapper;

import com.tl.mybatis02.model.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author Antg
 * @date 2021/8/39:59
 */
public interface StudentMapper {

    /***************************** #和$的区别 ***********************************/
    //模糊查询
    public List<Student> findByUserName(@Param("username") String username);

    //使用字符串拼接的查询(#与$的区别)
    public List<Student> findByAgeOrder(@Param("username") String username, @Param("orderType") String order);

    /***************************** 动态sql ***********************************/
    //使用if语句
    public List<Student> find(Student student);

    //使用choose when otherwise
    public List<Student> useChoose(Student student);

    //where
    public List<Student> useWhere(Student student);

    //set
    public int useSet(Student student);

    //foreach 循环插入
    public int useForEach01(@Param("list01") List<Student> studentList);

    //foreach 循环in
    public List<Student> useForEach02(@Param("idList") Integer[] idList);

    //根据id查询
    public Student findStuById(@Param("id") Integer id);

    /***************************** 一对多联查 ***********************************/
    //方法一:调用别的mapper中的方法
    public Student findoneToMany1(Integer id);

    //方法二:直接进行联查,在association中进行转换
    public Student findoneToMany2(Integer id);

    //方法三:嵌套resultMap
    public Student findoneToMany3(Integer id);
    
}
